#ifndef __MCP2515_H
#define __MCP2515_H

#include "public_lib.h"
#include "can1.h"

#define MCP_WRITE   0x02
#define MCP_READ    0x03
#define MCP_MODIFY  0x05
//#define 

#define MCP_RESET  0xC0
#define MCP_WAITData 0xA5

#define MCP_CANSTAT_ADDR  0x0E     //
#define MCP_CANCTRL_ADDR  0x0F     //
#define MCP_CF3_ADDR      0x28     //
#define MCP_CF2_ADDR      0x29     //
#define MCP_CF1_ADDR      0x2A     //
#define MCP_CANINIE_ADDR  0x2B     //
#define MCP_CANINIF_ADDR  0x2C     //
#define MCP_TxB0CTRL_ADDR 0x30     //
#define MCP_TxB1CTRL_ADDR 0x40     //
#define MCP_TxB2CTRL_ADDR 0x50     //
#define MCP_RxB0CTRL_ADDR 0x60     //
#define MCP_RxB1CTRL_ADDR 0x70     //

#define MCP_NORMAL_MODE   0x00
#define MCP_SLEEP_MODE    0x20
#define MCP_LISTEN_MODE   0x60
#define MCP_LOOPBACK_MODE 0x40
#define MCP_CONFIG_MODE   0x80
#define MCP_MODE_MASK     0xe0

int mcp2515_init(unsigned char baudrate_mode);

int mcp2515_write(CanTxMsg *msg);

int mcp2515_read(CanRxMsg *msg);

#endif
